package 常用API;

import java.util.Arrays;
/*
Arrays类中包含用于操作数组的各种方法
    toString（int[] arr）：返回指定数组的内容字符串形式
    sort（int[] arr）：按照数字顺序排列指定的数组

工具类设计思想
    构造方法用private修饰：防止外界创建对象
    成员用public static修饰：让使用类名访问成员
 */
public class ArrayDemo {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr={24,69,80,57,13};
        System.out.println("排序前"+arrayToString(arr));

        //冒泡排序
        for (int i=0;i<arr.length-1;i++){//n个元素比较n-1次
            for (int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println("排序后"+arrayToString(arr));

        //Arrays中的toString/sort
        //Arrays源码中包含用private修饰的无参构造函数，防止外界创建对象
        //定义一个数组
        int[] arr2={24,69,80,57,13};
        System.out.println("排序前"+ Arrays.toString(arr2));
        Arrays.sort(arr2);
        System.out.println("排序后"+ Arrays.toString(arr2));
    }

    //把数组中的元素按照指定的规则组成一个字符串[元素1，元素2，....]
    public static String arrayToString(int[] arr){
        StringBuilder sb=new StringBuilder();
        sb.append("[");
        for (int i=0;i<arr.length;i++){
            if(i==arr.length-1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]).append(",");
            }
        }
        sb.append("]");
        String s=sb.toString();
        return s;
    }
}
